/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package desarrollosoft.ghce.vista.implementaciones;

import desarrollosoft.ghce.entidades.Paciente;
import desarrollosoft.ghce.vista.interfaces.Cambiable;
import java.util.HashMap;
import java.util.Map;
import org.zkoss.zk.ui.Execution;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Tabpanel;
import org.zkoss.zul.Window;

/**
 *
 * @author ariel
 */
public class ControladoraAntecedentes extends SelectorComposer<Window> {

    private Paciente pacienteElegido;
    private Cambiable cambiable;
    
    @Wire
    private Tabpanel tabpanelPatologicos;
    
    @Wire
    private Tabpanel tabpanelNoPatologicos;
    
    @Wire
    private Tabpanel tabpanelHeredoFamiliares;
    
    @Override
    public void doAfterCompose(Window comp) throws Exception {
        hacerAntesDeDibujar();
        super.doAfterCompose(comp);
        hacerDespuesDeDibujar();
    }
    
    private void hacerAntesDeDibujar() {
        Execution ejecucion = Executions.getCurrent();
        cambiable = (Cambiable) ejecucion.getArg().get("controladoraPrincipal");
        pacienteElegido = (Paciente) ejecucion.getArg().get("pacienteElegido");
    }
    
    private void hacerDespuesDeDibujar() {
        tabpanelPatologicos.appendChild(crearVentanaAntecedentesPatologicos());
        tabpanelNoPatologicos.appendChild(crearVentanaAntecedentesNoPatologicos());
        tabpanelHeredoFamiliares.appendChild(crearVentanaAntecedentesHeredoFamiliares());
    }
    
    private Window crearVentanaAntecedentesPatologicos() {
        Map<String,Object> argumentos = new HashMap<>();
        argumentos.put("paciente", pacienteElegido);
        return (Window) Executions.createComponents("VentanaAntecedentesPatologicos.zul", null, argumentos);
    }
    
    private Window crearVentanaAntecedentesNoPatologicos() {
        Map<String,Object> argumentos = new HashMap<>();
        argumentos.put("paciente", pacienteElegido);
        return (Window) Executions.createComponents("VentanaAntecedentesNoPatologicos.zul", null, argumentos);
    }
    
    private Window crearVentanaAntecedentesHeredoFamiliares() {
        Map<String,Object> argumentos = new HashMap<>();
        argumentos.put("paciente", pacienteElegido);
        return (Window) Executions.createComponents("VentanaAntecedentesHeredoFamiliares.zul", null, argumentos);
    }
}
